#include <REGX52.H>
#include "Delay.h"
#include "MatrixLED.h"
#include "key.h"
#include "timer0.h"
char a[3][2]={0};
char KeyNum,UD,LR;
char Row=0,Col=0;
void main()
{
	//unsigned char i,n;
	Timer0Init();
	MatrixLED_Init();
	while(1)
	{
		KeyNum=Key();		//获取独立按键键码
		if(KeyNum)			//如果按键按下
		{			 
			if(KeyNum==1)	//如果K1按键按下,上
			{
				UD=-1;
				LR=0;
			}
			else if(KeyNum==2)//下
			{
				UD=1;LR=0;
			}//下
			else if(KeyNum==3)//左
			{
				LR=-1;UD=0;	
			}
			else if(KeyNum==4)//右
			{
				LR=1;UD=0;		
			}
		}
		MatrixLED_ShowPonit(Row,Col);
//		for(i=2;i>0;i--)
//		{
//			a[i][0]=a[i-1][0];
//			a[i][1]=a[i-1][1];
//		}
//		a[2][0]=a[1][0];
//		a[2][1]=a[1][1];
//		a[1][0]=a[0][0];
//		a[1][1]=a[0][1];
//		
//		a[0][0]=Row;
//		a[0][1]=Col;
//		MatrixLED_ShowPonit(a[0][0],a[0][1]);	
//		MatrixLED_ShowPonit(a[1][0],a[1][1]);	
//		MatrixLED_ShowPonit(a[2][0],a[2][1]);	
//		for(n=0;n<3;n++)
//		{		
//			MatrixLED_ShowPonit(a[n][0],a[n][1]);	
//		}
		
	}
}

void Timer0_Routine() interrupt 1
{
	static unsigned int T0Count;
	TL0 = 0x18;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值
	T0Count++;		//T0Count计次，对中断频率进行分频
	if(T0Count>=500)//分频1000次，1s
	{
		T0Count=0;		
		if(UD==1)
		{				
			Row++;
			Row%=8;
		}
		if(UD==-1)
		{	
			Row--;
			if(Row<0){Row=7;}		
		}	
		if(LR==1)
		{							
			Col++;
			Col%=8;
		}		
		if(LR==-1)
		{			
			Col--;
			if(Col<0){Col=7;}		
		}		
	}
}
